// GraphicModelSpaceGenerator.h: interface for the GraphicModelSpaceGenerator class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_GRAPHICMODELSPACEGENERATOR_H__C222C3E0_A90A_4725_B168_B85F929DBF29__INCLUDED_)
#define AFX_GRAPHICMODELSPACEGENERATOR_H__C222C3E0_A90A_4725_B168_B85F929DBF29__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "RegisterObject.h"
#include "GraphicModelSpaceGeneratorInfo.h"
#include "GraphicModelSpace.h"

class DllExport GraphicModelSpaceGenerator : public RegisterObject<GraphicModelSpaceGenerator, GMSGInfo>
{
	DECLARE_DYNAMIC_EX(GraphicModelSpaceGenerator);

public:
	enum{
		eAutoCADModelSpaceGenerator
	};

public:
	GraphicModelSpaceGenerator();
	virtual ~GraphicModelSpaceGenerator();

public:
	virtual GraphicModelSpace* Generate(const CString& strName) = 0;
	virtual GraphicModelSpace* Generate() = 0;

	static GraphicModelSpaceGenerator* Instance();
};

typedef SingleInstanceRegisterInfo<INT, GraphicModelSpaceGenerator*> GMSGInfoParent;
#endif // !defined(AFX_GRAPHICMODELSPACEGENERATOR_H__C222C3E0_A90A_4725_B168_B85F929DBF29__INCLUDED_)
